/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.capex.farmacus.encapsulates;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author IK
 */
@Entity
@Table(name = "visitadoresmedicos")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Visitadoresmedicos.findAll", query = "SELECT v FROM Visitadoresmedicos v"),
    @NamedQuery(name = "Visitadoresmedicos.findByVisitador", query = "SELECT v FROM Visitadoresmedicos v WHERE v.visitadoresmedicosPK.visitador = :visitador"),
    @NamedQuery(name = "Visitadoresmedicos.findByMedico", query = "SELECT v FROM Visitadoresmedicos v WHERE v.visitadoresmedicosPK.medico = :medico"),
    @NamedQuery(name = "Visitadoresmedicos.findByReporto", query = "SELECT v FROM Visitadoresmedicos v WHERE v.reporto = :reporto"),
    @NamedQuery(name = "Visitadoresmedicos.findByComentario", query = "SELECT v FROM Visitadoresmedicos v WHERE v.comentario = :comentario"),
    @NamedQuery(name = "Visitadoresmedicos.findByFechaVisitacion", query = "SELECT v FROM Visitadoresmedicos v WHERE v.visitadoresmedicosPK.fechaVisitacion = :fechaVisitacion")})
public class Visitadoresmedicos implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected VisitadoresmedicosPK visitadoresmedicosPK;
    @Column(name = "reporto")
    private Boolean reporto;
    @Column(name = "comentario")
    private String comentario;
    @JoinColumn(name = "visitador", referencedColumnName = "id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Visitadores visitadores;
    @JoinColumn(name = "medico", referencedColumnName = "id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Medicos medicos;

    public Visitadoresmedicos() {
    }

    public Visitadoresmedicos(VisitadoresmedicosPK visitadoresmedicosPK) {
        this.visitadoresmedicosPK = visitadoresmedicosPK;
    }

    public Visitadoresmedicos(int visitador, int medico, Date fechaVisitacion) {
        this.visitadoresmedicosPK = new VisitadoresmedicosPK(visitador, medico, fechaVisitacion);
    }

    public VisitadoresmedicosPK getVisitadoresmedicosPK() {
        return visitadoresmedicosPK;
    }

    public void setVisitadoresmedicosPK(VisitadoresmedicosPK visitadoresmedicosPK) {
        this.visitadoresmedicosPK = visitadoresmedicosPK;
    }

    public Boolean getReporto() {
        return reporto;
    }

    public void setReporto(Boolean reporto) {
        this.reporto = reporto;
    }

    public String getComentario() {
        return comentario;
    }

    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    public Visitadores getVisitadores() {
        return visitadores;
    }

    public void setVisitadores(Visitadores visitadores) {
        this.visitadores = visitadores;
    }

    public Medicos getMedicos() {
        return medicos;
    }

    public void setMedicos(Medicos medicos) {
        this.medicos = medicos;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (visitadoresmedicosPK != null ? visitadoresmedicosPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Visitadoresmedicos)) {
            return false;
        }
        Visitadoresmedicos other = (Visitadoresmedicos) object;
        if ((this.visitadoresmedicosPK == null && other.visitadoresmedicosPK != null) || (this.visitadoresmedicosPK != null && !this.visitadoresmedicosPK.equals(other.visitadoresmedicosPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "edu.capex.farmacus.encapsulates.Visitadoresmedicos[ visitadoresmedicosPK=" + visitadoresmedicosPK + " ]";
    }
    
}
